package kr.ac.ssu.ailab.Model.Data;

import java.awt.Point;
import java.util.ArrayList;
import java.util.Map;

/**
 * 맵의 구성이 완료된이 후에 길찾기에 참조되어질 그래프
 * 
 * @author Rivers
 */
public class Graph
{

	private Map<String, ArrayList<Point>> edge;
	private Map<String, Double> edgeCost;
	private ArrayList<Point> blockList = new ArrayList<Point>();

	/**
	 * 생성자
	 */
	public Graph()
	{

	}

	/**
	 * 그래프를 구성하는 Edge 전체를 get 하는 메소드
	 * 
	 * @return
	 */
	public Map<String, ArrayList<Point>> getEdge()
	{
		return edge;
	}

	/**
	 * 그래프를 구성하는 Edge 를 set 하는 메소드
	 * 
	 * @param edge
	 */
	public void setEdge(Map<String, ArrayList<Point>> edge)
	{
		this.edge = edge;
	}

	/**
	 * 그래프를 구성하는 Edge 에 대한 Cost 를 get 하는 메소드
	 * 
	 * @return
	 */
	public Map<String, Double> getEdgeCost()
	{
		return edgeCost;
	}

	/**
	 * 그래프를 구성하는 Edge 에 대한 Cost 를 set 하는 메소드
	 * 
	 * @param edgeCost
	 */
	public void setEdgeCost(Map<String, Double> edgeCost)
	{
		this.edgeCost = edgeCost;
	}

	/**
	 * 그래프를 구성함에 있어서 클러스터간의 막혀있는 연결상태를 저장하고 있는 리스트를 get 하는 method
	 * 
	 * @return
	 */
	public ArrayList<Point> getBlockList()
	{
		return blockList;
	}

	/**
	 * 그래프를 구성함에 있어서 클러스터간의 막혀있는 연결상태의 리스트를 set 하는 method
	 * 
	 * @param blockList
	 */
	public void setBlockList(ArrayList<Point> blockList)
	{
		this.blockList = blockList;
	}

}
